package com.sxj.corejava.code09_集合.List;

import java.util.Arrays;
import java.util.LinkedList;

/**
 * @author 石小俊
 * @date 2025年02月19日
 */
public class Test07_LinkedList {

    public static void main(String[] args) {
        // 定义方式一
        LinkedList<String> list = new LinkedList<>();
        // 定义方式二
        LinkedList<Integer> list2 = new LinkedList<>(Arrays.asList(1, 2, 3, 4, 5));

        // 可以使用List中所有的方法
        list.add("admin");
        list.add("jack");
        list.add("lucy");
        list.add("tom");
        list.add("alex");
        list.add("lily");
        System.out.println(list);
        System.out.println(list2);
        list.add(3, "alice");
        System.out.println(list);

        // 也可以使用队列的方法
        // 向首部添加一个元素
        list.addFirst("root");
        // 向尾部添加一个元素
        list.addLast("john");
        System.out.println(list);

        // 返回首尾的元素
        System.out.println(list.getFirst());
        System.out.println(list.getLast());
        System.out.println(list);

        // 删除首尾的元素
        list.removeFirst();
        list.removeLast();
        System.out.println(list);

        // 获取并移除首尾元素
        System.out.println(list.pollFirst());
        System.out.println(list.pollLast());
        System.out.println(list);

        // 获取但不删除首尾元素
        System.out.println(list.peekFirst());
        System.out.println(list.peekLast());
        System.out.println(list);
    }

}
